package com.itany.sigleton;

/**
 * Author:石小俊
 * Date: 2022/11/3 13:53
 * 懒汉模式: 在使用的时候才会去进行实例化
 * 该方式线程不安全
 * 可以通过ThreadLocal进行实现
 */
public class OtherBean {

    // 1.将构造方法私有化,确保外部无法创建对象
    private OtherBean(){

    }
    // 2.在类加载的时候声明当前类的唯一实例,但是不进行实例化
    private static OtherBean otherBean;

    // 3.如何能够使得外部获取当此处创建的对象
    // 创建一个方法,用于外部获取当前实例
    // 由于外部无法直接获取当前实例
    // 因此,此处的方法应使用static进行修饰
    // 确保调用该方法时不需要对象
    public static OtherBean getInstance(){
        // 调用该方法时表示外部需要实例化该对象
        // 因此,在此处对对象进行实例化
        // 由于该方法可能被多次调用
        // 因此,每次调用时判断下当前对象是否已经实例化
        if(null == otherBean){
            // 如果otherBean为null,说明尚未实例化
            otherBean = new OtherBean();
        }
        return otherBean;
    }

}
